// pages/edit/edit.js
Page({
  data: {
    loading: true, // 加载状态
    formData: {}, // 表单数据
    startDate: '', // 日期选择器起始日期
    id: '' // 信息ID
  },

  onLoad: function (options) {
    if (options.id) {
      this.setData({
        id: options.id
      });
      this.loadData();

      // 设置日期选择器的起始日期为今天
      const now = new Date();
      const year = now.getFullYear();
      const month = (now.getMonth() + 1).toString().padStart(2, '0');
      const day = now.getDate().toString().padStart(2, '0');
      this.setData({
        startDate: `${year}-${month}-${day}`
      });
    } else {
      wx.showToast({
        title: '参数错误',
        icon: 'error'
      });
      wx.navigateBack();
    }
  },

  // 加载数据
  loadData: function () {
    const db = wx.cloud.database();
    const openid = wx.getStorageSync('openid');

    db.collection('carpool').doc(this.data.id).get()
      .then(res => {
        const data = res.data;

        // 检查是否是本人发布的信息
        if (data._openid !== openid) {
          wx.showToast({
            title: '无权限编辑',
            icon: 'error'
          });
          wx.navigateBack();
          return;
        }

        this.setData({
          formData: data,
          loading: false
        });
      })
      .catch(err => {
        console.error('加载数据失败', err);
        this.setData({
          loading: false
        });
        wx.showToast({
          title: '加载失败',
          icon: 'error'
        });
      });
  },

  // 输入框变化处理
  onInputChange: function (e) {
    const field = e.currentTarget.dataset.field;
    const value = e.detail.value;
    this.setData({
      [`formData.${field}`]: value
    });
  },

  // 日期选择
  onDateChange: function (e) {
    this.setData({
      'formData.date': e.detail.value
    });
  },

  // 时间选择
  onTimeChange: function (e) {
    this.setData({
      'formData.time': e.detail.value
    });
  },

  // 表单验证
  validateForm: function () {
    const { formData } = this.data;

    if (!formData.departure.trim()) {
      wx.showToast({
        title: '请输入出发地',
        icon: 'none'
      });
      return false;
    }

    if (!formData.destination.trim()) {
      wx.showToast({
        title: '请输入目的地',
        icon: 'none'
      });
      return false;
    }

    if (!formData.date) {
      wx.showToast({
        title: '请选择日期',
        icon: 'none'
      });
      return false;
    }

    if (!formData.time) {
      wx.showToast({
        title: '请选择时间',
        icon: 'none'
      });
      return false;
    }

    if (!formData.capacity || formData.capacity <= 0) {
      wx.showToast({
        title: '请输入有效的人数',
        icon: 'none'
      });
      return false;
    }

    if (!formData.price || formData.price < 0) {
      wx.showToast({
        title: '请输入有效的价格',
        icon: 'none'
      });
      return false;
    }

    if (!formData.contact.trim()) {
      wx.showToast({
        title: '请输入联系方式',
        icon: 'none'
      });
      return false;
    }

    return true;
  },

  // 提交编辑
  submitEdit: function () {
    if (!this.validateForm()) {
      return;
    }

    wx.showLoading({
      title: '保存中...'
    });

    const db = wx.cloud.database();
    const updateData = {
      ...this.data.formData,
      updateTime: new Date()
    };

    // 移除不需要更新的字段
    delete updateData._id;
    delete updateData._openid;
    delete updateData.createTime;

    db.collection('carpool').doc(this.data.id).update({
      data: updateData
    }).then(res => {
      wx.hideLoading();
      wx.showToast({
        title: '保存成功',
        icon: 'success'
      });

      // 返回上一页
      setTimeout(() => {
        wx.navigateBack();
      }, 1500);
    }).catch(err => {
      console.error('保存失败', err);
      wx.hideLoading();
      wx.showToast({
        title: '保存失败，请重试',
        icon: 'error'
      });
    });
  },

  // 取消编辑
  cancelEdit: function () {
    wx.navigateBack();
  },

  // 返回
  goBack: function () {
    wx.navigateBack();
  }
});
